Use of messages in or associated with program signal streams by set-top terminals

ABSTRACT

Methods of operating a communications system comprise, in one example, inserting advertising in a program stream by a receiving device based, at least in part, on an encrypted segmentation message embedded in the program steam. The at least one segmentation message defines an expanse of the program stream to receive the advertising. At least one embedded decoy message is included in the program stream, as well. In one example, the receiving device, which may be a set-top terminal, for example, is coupled to a display device, such as a television, at a user location. A method of operating a receiving device coupled to a display device at a user location is also disclosed, comprising programming the receiving device to record a program and recording the program based, at least in part, on at least one segmentation message in a program stream. Systems are disclosed, as well.

RELATED APPLICATIONS

The present application is a continuation of U.S. patent applicationSer. No. 10/428,900, which was filed on May 1, 2003 and will issue onMay 14, 2013 bearing U.S. Pat. No. 8,443,383, which is acontinuation-in-part of U.S. patent application Ser. No. 10/263,015,filed on Oct. 2, 2002, which issued on Mar. 15, 2011 bearing U.S. Pat.No. 7,908,626 B2 and is incorporated by reference herein. U.S. patentapplication Ser. No. 10/263,015 claims the benefit of U.S. ProvisionalApplication No. 60/377,963, filed on May 3, 2002, under 35 U.S.C.119(e).

FIELD OF THE INVENTION

The invention relates to communications systems and methods, and moreparticularly, to a system and method of using messages in or associatedwith program signal streams by receiving devices, such as set-topterminals.

BACKGROUND OF THE INVENTION

Personal video recorders (PVRs), also known as digital video recorders(DVRs), such as TiVO and ReplayTV devices, are popular nowadays fortheir enhanced capacities in recording television programming. They mayoffer such functions as “one-touch programming” for automaticallyrecording every episode of a show for an entire season, “commercialadvance” for automatically skipping through commercials while watching arecorded broadcast, an “on-screen guide” for looking up recordedprograms to view, etc. The PVRs may also suggest programs for recordingbased on a user's viewing habit. These devices also enable the“pausing”, “rewinding” and “fast-forwarding” of a live television (“TV”)broadcast while it is being recorded.

PVRs typically use electronic program guides (EPGs) to facilitate theselection of programming content for recording, without having to set atimer. EPGs are also used to manage, identify, select and recordprogramming content on program channels made available by cabletelevision (TV) networks. A user's ability to accurately record abroadcast program with a PVR may be contingent upon the accuracy of thebroadcast start and end times of the program prescribed by EPG data(hereinafter “EPG start and end times”). In instances where the actualbroadcast start or end time of a program is different than the EPG startor end time, programming content is often recorded that the user did notwant, or all of the programming content that the user intended to recordis not actually recorded.

The actual start and end times for a given broadcast program may bedifferent than the EPG start and end times for various reasons. Forexample, suppose a sports event, such as a baseball game, is scheduledto broadcast on a given evening from 7:30 PM to 10:30 PM, but because ofextra innings or a rain delay, the game continues until 11:15 PM.Although the actual time of the game is from 7:30 PM to 11:15 PM, thestart and end times listed and provided by the EPG will be 7:30 PM and10:30 PM, respectively. Accordingly, if a user selects to record thebaseball game using the EPG in this instance, the user would miss thelast 45 minutes of the game (i.e., from 10:30 PM to 11:15 PM). Otherexamples of programs ending later than expected include a PresidentialAddress, a special news show or an awards ceremony. Certain PresidentialAddresses or special news shows may not be scheduled at all. Technicaldifficulties causing the content provider to broadcast a program at atime other than that which is scheduled may also cause such a variance.

In addition, when the time of one program provided on a specific channelis off schedule, subsequent programs provided by the channel may also beaffected, unless the scheduled programming content is manipulated (forexample, certain show or commercial segments may be skipped andtherefore not broadcast). Thus, in the example above, if a user recordsthrough an EPG a particular show which was scheduled to broadcast from11:00 PM to 11:30 PM, but it actually broadcast from 11:15 PM to 11:45PM because of a prolonged baseball game, the user would not record thedesired programming content. Instead, in this instance, the user's PVRwould record the last fifteen minutes of the baseball game and only 5the first fifteen (out of thirty) minutes of that particular show.

PVRs have other disadvantages. For example, like a VCR, a PVR is astandalone device which requires yet another remote control to operatethe device, in addition to those remote controls for a TV set, set-topbox, DVD player, VCR, etc., which may already be confusing to a user.Another disadvantage is that a prior art PVR only records (a) the last Xminute program material played on the channel to which the user actuallytunes, where X represents a limited value, and (b) desired programswhich need to be identified to or by the PVR in advance of theirbroadcast. Thus, any program material other than (a) or (b) is notrecorded by a PVR, thereby limiting the materials that a user canreview. For example, the PVR user cannot review any unrecorded programafter its broadcast. Still another disadvantage is that limited by thenumber of tuners therein, a prior art PVR is not capable of recordingprograms in their entirety which have overlapping broadcast times andthe number of which is greater than the number of tuners, therebyfurther limiting the materials that a user can review.

Video on demand (“VOD”) services, such as a subscription VOD service,address at least some of these disadvantages by storing broadcastedprograms for later retrieval by customers. TV programs may be acquiredand stored in real time, from multiple origination points. Typically,entire program streams for each broadcast channel are stored each day.When a customer requests a particular program that has already beenbroadcast and stored, the VOD service system may fetch the content ofthe requested program from storage based on the program times in an EPGand transmit the program to the customer. However, EPG data does notprovide program start and end times accurately enough to ensure thatcontent is cleanly defined between elements. Advertising before or aftera program, which may have to be shown along with a requested program dueto contractual obligations, may be clipped. Portions of programs beforeor after the show may also be provided, which may violate copyrights andcontractual obligations with respect to those other programs. Inaddition, the EPG data does not take into consideration deviationsbetween the scheduled start and end times and the actual start and endtimes due to unscheduled program overruns or unscheduled specialprograms, as discussed above. If a program has been delayed, retrievalof a stored program based on EPG data will typically not enableretrieval of all or even part of the requested program. A user maytherefore expect a program that they do not receive in whole or in part.EPG data also only indicates program start and end times. It does notprovide any information about the location of logical blocks or chapterswithin the program, such as monologs, skits, musical performances, guestappearances, sports highlights, interviews, weather reports, etc., oradvertising and advertising insertion points.

With the advent of digital communications technology, many TV broadcaststreams are transmitted in digital formats. For example, DigitalSatellite System (DSS), Digital Broadcast Services (DBS), and AdvancedTelevision Standards Committee (ATSC) broadcast streams are digitallyformatted pursuant to the well known Moving Pictures Experts Group 2(MPEG-2) standard. The MPEG-2 standard specifies, among others, themethodologies for video and audio data compressions which allow multipleprograms, with different video and audio feeds, to be multiplexed in atransport stream traversing a single broadcast channel. A digital TVreceiver may be used to decode an MPEG-2 encoded transport stream andextract the desired program therefrom. The prior art PVRs take advantageof MPEG-2 compression of video and audio data to maximize use of theirlimited storage capacity.

In accordance with the MPEG-2 standard, video data is compressed basedon a sequence of groups of pictures (“GOPs”), in which each GOPtypically begins with an intra-coded picture frame (also known as an“I-frame”), which is obtained by spatially compressing a completepicture using discrete cosine transform (DCT). As a result, if an erroror a channel switch occurs, it is possible to resume correct decoding atthe next I-frame.

The GOP may represent up to 15 additional frames by providing a muchsmaller block of digital data that indicates how small portions of theI-frame, referred to as macroblocks, move over time. Thus, MPEG-2achieves its compression by assuming that only small portions of animage change over time, making the representation of these additionalframes extremely compact. Although GOPs have no relationship betweenthemselves, the frames within a GOP have a specific relationship whichbuilds off the initial I-frame.

The compressed video and audio data are carried by continuous elementarystreams, respectively, which are broken into packets, resulting inpacketized elementary streams (PESs). These packets are identified byheaders that contain time stamps for synchronization, and are used toform MPEG-2 transport streams. For digital broadcasting, multipleprograms and their associated PESs are multiplexed into a singletransport stream. A transport stream has PES packets further subdividedinto short fixed-size data packets, in which multiple programs encodedwith different clocks can be carried. A transport stream not onlycomprises a multiplex of audio and video PESs, but also other data suchas MPEG-2 program specific information (“PSI”) describing the transportstream. The MPEG-2 PSI includes a program associated table (“PAT”) thatlists every program in the transport stream. Each entry in the PATpoints to a program map table (PMT) that lists the elementary streamsmaking up each program. Some programs are open, but some programs may besubject to conditional access (encryption) and this information is alsocarried in the MPEG-2 PSI.

The aforementioned fixed-size data packets in a transport stream eachcarry a packet identifier (“PID”) code. Packets in the same elementarystreams all have the same PID, so that a decoder can select theelementary stream(s) it needs and reject the remainder.Packet-continuity counts are implemented to ensure that every packetthat is needed to decode a stream is received.

Cue tones have been inserted into analog program streams by contentproviders to indicate insertion points for advertisements by cablesystems. Cue tones are often missed, however, resulting in lostopportunities to insert advertising or clipping of inserted advertising,adversely impacting advertising revenue.

American National Standard ANSI/SCTE 35 2001 (Formerly DVS 253), DigitalProgram Insertion Cueing Messages for Cable (May 8, 2001) referred toherein as the DVS 253 Standard, which is incorporated by referenceherein, supports the splicing of MPEG-2 digital streams for theinsertion of advertising and other content. Splice information may beprovided in a splice information table associated with a particularprogram and/or in a cue message in the program stream. The spliceinformation table and cue messages may be sent multiple times. Forexample, a cue message may be sent 8, 5, 4 and 2 seconds prior to thesplice event. Unauthorized parties may intercept the splice informationand use it to avoid the viewing of advertising or for other commerciallydeleterious purposes. The splice information may be encrypted tointerfere with such interception.

SUMMARY OF THE INVENTION

In accordance with an embodiment of the invention, a method of operatinga communications system comprising receiving devices coupled torespective display devices at user locations is disclosed comprisingbroadcasting a program signal stream to a receiving device. The programsignal stream comprises at least one embedded, encrypted segmentationmessage to indicate an expanse of a portion of the program signal streamfor insertion of advertising, and at least one embedded decoy message.The receiving device decrypts the at least one segmentation message andidentifies the expanse based, at least in part, on the at least onedecrypted segmentation message. The receiving device inserts advertisingin the expanse by the receiving device. The start and end of the expansemay be identified based, at least in part, on the at least onesegmentation message. First and second segmentation messages may beprovided, one to identify the start of the expanse and the other toidentify the end of the expanse. The segmentation message may bedecrypted based on a key, for example. The decoy messages aredisregarded while identifying the expanse.

In accordance with an aspect of this embodiment, a communications systemis disclosed comprising a first processor programmed to cause broadcastof a program signal stream including at least one embedded, encryptedsegmentation message to indicate an expanse of a portion of the programsignal stream for insertion of advertising, and at least one decoymessage. The system further comprises a receiving device to be coupledto a display device at a user location, the receiving device beingcoupled to the first processor to receive the program signal stream. Thereceiving device comprises an interface to receive the program signalstream and a second processor coupled to the interface. Memory iscoupled to the second processor to store advertising. The secondprocessor is programmed to decrypt the at least one encryptedsegmentation message and identify the expanse of the program signalstream based, at least in part, on the at least one decryptedsegmentation message. The second processor is further programmed toretrieve advertising from the memory and insert the advertising into theexpanse.

In accordance with another embodiment, a method of operating acommunications system comprising set-top terminals coupled to respectivetelevisions at user locations is disclosed comprising broadcasting aprogram signal stream to a set-top terminal. The program signal streamcomprises at least one embedded, encrypted segmentation message toindicate an expanse of a portion of the program signal stream forinsertion of advertising, and at least one embedded decoy message. Themethod further comprises decrypting the at least one segmentationmessage by the set-top terminal and identifying a start of the expanseand an end of the expanse based, at least in part, on the at least onesegmentation message. The method further comprises disregarding the atleast embedded decoy message while identifying the start and the end ofthe expanse and inserting advertising in the expanse by the set-topterminal.

In accordance with another embodiment of the invention, a method ofoperating a receiving device coupled to a display device at a userlocation is disclosed, where the receiving device receives a programsignal stream comprising at least one program and there is at least onesegmentation message in the program signal stream. The method comprisesprogramming the receiving device to record the program and recording theprogram based, at least in part, on the at least one segmentationmessage. The receiving device may be programmed to record the program byselecting the program from a program listing.

The program listing may define a first start time of the program and theat least one segmentation message may define a second start time of theprogram. The recording start time for the program may be set based onthe start time defined by the program listing and the second start timeof the program defined by the at least one segmentation message may becompared to the first start time defined by the program listing. Therecording start time of the one program may be adjusted if the secondstart time is different than the first start time. The recording endtime may be similarly adjusted. The at least one segmentation messagemay be encrypted.

In accordance with an aspect of this embodiment, a receiving device isdisclosed to receive a program signal stream comprising at least oneprogram and at least one segmentation message. The receiving device isto be coupled to a display device. The receiving device comprises aninterface to receive the program signal stream and to provide theprogram signal stream to the display device and a processor coupled tothe interface. The processor is programmable by a user to record theprogram. The processor is programmed to record the program based, atleast in part, on the at least one segmentation message. Memory iscoupled to the processor to store the recorded program.

In accordance with another embodiment of the invention, a method ofoperating a receiving device coupled to a display device at a userlocation is disclosed comprising programming the receiving device torecord a program to be received and receiving the program, from asource. At least one segmentation message is received associated withthe program, from the source of the program. The program is recordedbased, at least in part, on the at least one segmentation message. Theat least one segmentation message may be provided by the source,separate from the program or with the program.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of certain components of a broadbandcommunications system embodying principles of an embodiment of theinvention, including sources of programming, a cable system and set-topterminals at customers premises;

FIG. 2 a is a schematic representation of a program stream, such as avideo stream, segmented with segmentation messages in accordance with anembodiment of the invention;

FIG. 2 b is an example of a content related segmentation message in aprogram signal stream;

FIG. 2 c is an example of a rights related segmentation message in aprogram signal stream;

FIG. 3 is a block diagram of an example of an origination system of asource of programming of FIG. 1, for uplinking video transport streamswith segmentation messages, in accordance with an embodiment of theinvention;

FIG. 4 is an example of a method of preparing a program signal streamfor delivery by the origination system of FIG. 3, in accordance with oneembodiment of the invention;

FIG. 5 a shows certain components of an example of a headend of thecable system of FIG. 1;

FIG. 5 b shows certain components of an example of anacquisition/staging (A/S) processor of FIG. 5 a;

FIG. 6 is an example of a method of operation of the cable system ofFIG. 1, in accordance with an embodiment of the invention;

FIG. 7 is an example of a portion of memory storing a program andprogram portions as assets in respective memory locations;

FIG. 8 is a flowchart describing a method of retrieving stored assetsfor transmittal to customers upon request, in accordance with anotherembodiment of the invention;

FIG. 9 is an example of a configuration of a set-top terminal of thecable system of FIG. 1;

FIG. 10 a is an example of a method of operating a cable system, wherethe set-top terminal of FIG. 9 can insert advertising;

FIG. 10 b is an example of a method of operating the set-top terminal ofFIG. 9, to adjust recording times of a personal video recorder (PVR), ifnecessary, based on segmentation messages;

FIG. 11 a is another example of an origination system of a source ofFIG. 1, that may provide segmentation messages in an analog programsignal stream in accordance with an embodiment of the invention;

FIG. 11 b is another example of an analog origination system, whichprovides program signal streams both with and without segmentationmessages;

FIG. 12 is an example of a headend of the cable system of FIG. 1, forreception of analog program signal streams; and

FIG. 13 is a schematic diagram of a video signal marked withsegmentation messages in accordance with another embodiment of theinvention.

DETAILED DESCRIPTION

Messages in or associated with a program signal stream may be used byreceiving devices coupled to display devices, such as set top terminalscoupled to televisions in user's premises, to facilitate operation ofthe receiving device. For example, in one embodiment of the invention,at least one encrypted segmentation message is embedded in the programsignal stream to define an expanse of the stream for insertion ofadvertising. The receiving device inserts the advertising in theexpanse. Embedding the message in the program signal stream facilitatesidentification of the expanse while encrypting the message foilsunauthorized attempts to avoid the viewing of commercials.

In another embodiment of the invention, at least one message indicativeof a start and end time of a program is used to adjust recording startand end times programmed by a user to record a program by a receivingdevice. The message may be embedded in the program signal stream orprovided separate from the program signal stream from a source of theprogram signal stream.

Prior to discussing these embodiments of the invention, examples ofcommunications systems for implementing these embodiments are discussed.

FIG. 1 is a block diagram of certain components of a broadbandcommunications system 10 embodying principles of the invention. Thesystem includes one or more program sources 12, cable system 14 and aplurality of service area nodes 16-1 through 16-m in a neighborhood.Service area node 16-1, for example, is coupled to set-top terminals18-1 through 18-n at customer's TV's. Cable system 14 deliversinformation and entertainment services to set-top terminals 18-1 through18-n.

Sources 12 create and broadcast programming to cable system 14 throughan origination system 20. Sources 12 include analog and digitalsatellite sources that typically provide the traditional forms oftelevision broadcast programs and information services. Sources 12 alsoinclude terrestrial broadcasters, such as broadcast networks (CBS, NBC,ABC, etc., for example), which typically transmit content from oneground antenna to another ground antenna and/or via cable. Sources 12may also include application servers, which typically provide executablecode and data for application specific services such as databaseservices, network management services, transactional electronic commerceservices, system administration console services, application specificservices (such as stock ticker, sports ticker, weather and interactiveprogram guide data), resource management service, connection managementservices, subscriber cares services, billing services, operation systemservices, and object management services; and media servers, whichprovide time-critical media assets such as Moving Pictures Experts Group2 (“MPEG-2”) standard encoded video and audio, MPEG-2 encoded stillimages, bit-mapped graphic images, PCM digital audio, three dimensionalgraphic objects, application programs, application data files, etc.Although specific examples of programs and services which may beprovided by the aforementioned sources are given herein, other programsand services may also be provided by these or other sources withoutdeparting from the spirit and scope of the invention. An example of anorigination system 20 that inserts segmentation messages into a programsignal stream to facilitate storage, retrieval and management ofprogramming by cable system 14, is discussed in more detail with respectto FIG. 3, below.

Cable system 14 includes headend 22, which processes program materials,such as TV program streams, for example, from sources 12 in digital andanalog forms. Digital TV streams may be formatted according to MotorolaDigicipher System, Scientific Atlanta Powerview Systems, the DigitalSatellite System (DSS), Digital Broadcast Services (DBS), or AdvancedTelevision Standards Committee (ATSC) standards, for example. Analog TVprogram streams may be formatted according to the National TelevisionStandards Committee (NTSC) or Phase Alternating Line (PAL) broadcaststandard. Headend 22 extracts program content in the analog and digitalTV streams and reformats the content to form one or more MPEG-2 encodedtransport streams for transmission to users at set-top terminals 18-1through 18-n. Such reformatting may be applied to those received streamsalready in an MPEG-2 format. This stems from the fact that the digitalcontent in the received MPEG-2 streams are typically encoded at avariable bit rate (VBR). To avoid data burstiness, headend 22 mayre-encode such digital content at a constant bit rate (CBR) to formtransport streams in a conventional manner. Headend 22 is discussed inmore detail below, with respect to FIGS. 5 a and 5 b.

The generated program signal transport streams are typically transmittedfrom headend 22 to hub 24 via Internet Protocol (“IP”) transport overoptical fiber. The program signal streams may also be transmitted asintermediate frequency signals that have been amplitude modulated (“AM”)or as a digital video broadcast (DVB), a synchronous serial interface(ASI) that has also been AM modulated. Hub 24 includes modulator bank26, among other components. Modulator bank 26 includes multiplemodulators, each of which is used to modulate transport streams ontodifferent carriers. Hub 24 is connected to hybrid fiber/coax (HFC) cablenetwork 28, which is connected to service area nodes 16-1 through 16-m.The transport streams may be recorded in headend 22 so that the users atthe set-top terminals may manipulate (e.g., pause, fast-forward orrewind) the programming content in the recorded streams in a mannerdescribed in commonly assigned U.S. Pat. No. 7,908,626 B2 (“the '626patent”), filed on Oct. 2, 2002, for example, which is incorporated byreference herein. In addition, in accordance with an embodiment of theinvention, the program signal streams are processed and stored byheadend 22 based, at least in part, on the segmentation messages, asdescribed further below.

FIG. 2 a is a schematic representation of a program signal stream 100,such as a video stream, segmented with segmentation messages inaccordance with an embodiment of the invention. Program stream 100includes a plurality of TV programs, including TV program 102. Portionsof TV program 104 preceding TV program 102 and TV program 106 followingTV program 102 are shown, as well. TV program 102 starts at point 107 aand ends at point 107 b. TV program 102 may include chapter 108, such asa monolog, skit, musical performance, guest appearance, sportshighlight, interview, weather report, and innings of a baseball game,for example. Chapter 108 starts at point 108 a and ends at point 108 b.A network commercial 110 and a local commercial 112 are also includedwithin the expanse of program 102, with respective start and end points110 a, 110 b, 112 a, 112 b. Unscheduled content 132 is indicated, withstart and end times 132 a, 132 b, respectively, to represent an overrunof a program, such as overtime in a sports event, for example.Unscheduled content 132 could also be news bulletin. Unscheduled content132 may or may not be present in a particular program or program stream.A TV program may contain more or fewer chapters 108, network commercials110 and local commercials 112. Content-related segmentation messages114, 116, 118, 120, 122, 124, 126, 128, 134 and 136 in accordance withan embodiment of the invention are also indicated.

Segmentation message 114, which may be referred to as a program startmessage, indicates that TV program 102 will start in A seconds from thetime of the appearance of that message. The time period may be definedin segmentation message 114. Segmentation message 114 may also include aprogram identification code (“PIC”) that uniquely identifies theprogram. Other PICs may be used to identify other program segments, suchas chapters or advertising. Other information, such as rights-relatedinformation, may be provided in segmentation message 114, as well. Forexample, the rights information may indicate whether there is a right tostore program 102 for later retrieval. FIG. 2 b is an example of asegmentation message, such as segmentation message 114, in programstream 100. Segmentation message 114 includes PIC field 152,rights-related information field 154 and time until event field 156,which here indicates the time until the start of program 102.

Instead of including rights information in segmentation message 114, itmay be provided in a separate message 115, as shown in FIG. 2 a. Rightsmessage 115 may have a similar configuration as segmentation message 114of FIG. 2 b, except that the time to event field 156 is not needed. PICfield 158, and two rights fields 160, 162 are shown. More or fewerrights fields may be provided, depending on the number of rights thatneed to be defined.

Content and rights-related segmentation messages may be formatted inaccordance with the DVS 253 Standard, discussed above, for example. Asegmentation message may be in the form of a packet delineated by a syncbyte, which is a byte that is unlikely to be replicated in the programstream. The fields discussed above may follow the sync byte, separatedby commas. Segmentation messages may be provided over a single channelfor all programs in the multiplex.

Returning to FIG. 2 a, another rights-related segmentation message 117is provided after start 107 a of program 102. It may be useful toprovide a rights message within the expanse of the program or programportion to which the right relates, in addition to or instead ofproviding rights-related segmentation message 115 prior to the start ofprogram 102. If both rights-related segmentation message 115 and 117 areprovided, different types of rights information may be provided in each.For example, the right to copy program 102 may be included insegmentation message 115, so that headend 22 will know prior to thearrival of program 102 whether or not program 102 may be processed forstorage. Other types of rights, such as the right to store the programfor a particular period of time, which is useful information to haveaccess to after program 102 is stored, may be provided within theexpanse of program 102, in rights segmentation message 117. Other rightsrelated to the use of the stored program may also be more advantageouslystored within the expanse of program 102 in message 117.

Segmentation message 136, which may be referred to as a program endmessage, indicates that TV program 102 will end in B seconds from theappearance of message 136. The program identification code, and anyother desired information, may be included in the message, as well.

Segmentation message 116, which may be referred to as a chapter startmessage, indicates that a chapter will start in C seconds from theappearance of message 116. A PIC field and a field for an identificationcode for chapter 108 may be included in the message. A rightsinformation field may also be incorporated in segmentation message 118or in a separate rights segmentation message 119 within the expanse ofchapter 108, particularly if chapter 108 has different rights associatedwith it than the rights associated with program 102. Segmentationmessage 118, which may be referred to as a chapter end message,indicates that chapter 108 will end in D seconds from the appearance ofmessage 118.

Segmentation message 120, which may be referred to as a networkadvertising start message, indicates that network advertising will startin E seconds from the appearance of message 120. A PIC field and a fieldfor an identification code for that segment of advertising may beincluded in segmentation message 120, as well. Rights information, ifany, which may relate to that advertising segment, may be included insegmentation message 120 or in a separate segmentation message (notshown) associated with advertising segment 110. For example, contractualobligations with respect to program 102 may require that the advertisingsegment 110 be included whenever program 102 is broadcast.Alternatively, the right to delete or replace advertising may begranted. Providing such information in segmentation message 120 or in aseparate segmentation message associated with the advertising segment110, facilitates correct processing of program 102 for storage andassists in ensuring that rights obligations are met. Segmentationmessage 122, which may be referred to as a network advertising endmessage, indicates that the network advertising will end in F secondsfrom the appearance of message 122.

Segmentation message 124, which may be referred to as a localadvertising start message, indicates that local advertising will occurin G seconds from the appearance of message 124. A PIC field and a fieldfor an identification code for that segment of local advertising, may beincluded in segmentation message 120, as well. As above, rightsinformation relating to that segment of local advertising may also beprovided in segmentation message 124 or in another segmentation messageassociated with local advertising segment 112. Segmentation message 126,which may be referred to as a local advertising end message, indicatesthat that break will end in H seconds from the appearance of message126. Advertising is typically included in program stream 100 as providedby a source 12 in the expanse 112, indicated by the local advertisingstart and local advertising end messages 124, 126. Cable system 14 mayinsert local advertising into the program stream, replacing theadvertising originally provided by a source 12. Cable system 14 may usesegmentation messages 124, 126 to determine when to start insertion ofthe local advertising and when to return to the program stream 100. Theadvertising may be inserted at the headend 22 or at set-top terminals18-1 through 18-n, as discussed further below.

If program 102 extends beyond its expected end time (such as if program102 is a sporting event going into overtime, for example), anunscheduled content start segmentation message 128 may be provided, toindicate the start of unscheduled content 132 in I seconds. A PIC fieldand a field for an identification code for the unscheduled content mayalso be included. Rights information may be included, as well.

If the unscheduled content is overtime in a sporting event, for example,the unscheduled content ends at the end 107 b of program 102. Programend segmentation message 136 may indicate the end of both program 102and unscheduled content 132 or an unscheduled content end segmentationmessage 134 may be provided. If the unscheduled content is a newsbulletin, for example, it may end prior to the end of program 102. Anunscheduled content end message 134 is then preferably provided toindicate the end of that content.

After the unscheduled content is completed, program 102 may continue tobe broadcast at the point where the program was interrupted. In thatcase, the entire program 102 is broadcast. However, program 102 may thenrun over the scheduled end time. The unscheduled content end message 134will indicate when the unscheduled content ends. Alternatively, if theprogress of program 102 continues while the unscheduled content is beingbroadcast, program 102 will end on time, but part of program 102 willnot be shown to the viewer. Cable system 14 may want to warn the viewerthat a portion of the show is being pre-empted or will run over thescheduled end time. In addition, whether a program has been pre-emptedmay affect treatment as a stored asset for later retrieval. For example,users may be notified that the program was not broadcast in its entiretyand the requested program will not be complete. If the pre-emption isdue to a news bulletin, the bulletin may be stored as a separate asset,as well. It may therefore be useful to include information indicatingwhether a portion of program 102 is pre-empted so that program 102 endson time or that program 102 is not pre-empted and will run over thescheduled end time, in unscheduled content segmentation message 128 orin another segmentation message.

The A-I time periods referred to above are real numbers. Time periodsA-I may be 6 seconds, for example. Other time periods may be used anddifferent time periods may be used for different segmentation messages.Alternatively, it may be previously defined that all segmentationmessages, or segmentation messages of certain types, indicate apredetermined time period until the occurrence of the event.

Both ends of a program or a program portion (such as chapter 108), arepreferably indicated by separate segmentation messages. Alternatively,both the time until a start of a program or program portion and the timeuntil the end of that program or program portion may be indicated in thesame segmentation message. For example, in segmentation message 114 inFIG. 2 b, where Time to Event field 156 indicates the time until thestart of program 102, an additional field may be provided to indicatethe time until the end of program 102 and/or the duration of theprogram. Such a segmentation message should be positioned prior to thestart of the respective program or program portion. Both a program startsegmentation message including a time to end or duration of a programand program end segmentation message 136 may be provided for redundancy,as well.

As shown in FIG. 2 a, expanses may exist within other expanses. Forexample, together, a program start message 114 and a program end message136 define an expanse of the entire program 102. Program start and endmessages for chapter 108, network advertising 110 and local advertising112 define expanses of the respective program portions within theexpanse of program 102. If any portion of a program has a start messagewithout a corresponding end message, program end message 136 terminatesall segments without their own end message. If a chapter oradvertisement portion is the beginning of a program, a correspondingstart message preferably accompanies the program start message, anddefines the same boundary time. As mentioned above, a program endmessage 136 can terminate unscheduled content segment 132.

In accordance with another embodiment, segmentation messages may be sentmultiple times or periodically, for redundancy. Since errors in definingthe start 107 a and end 107 b of program 102 could result in storage ofan incomplete program or storage of one program including a portion ofanother program, the program start and program end messages 114, 128,and other such significant segmentation messages, are preferably senttwo or more times prior to the event boundary. For example, the programstart message 114 and the program end message 136 may be sent twicewithin a 5 to 8 second window prior to the respective boundary.Advertising segmentation messages, particularly those defining anexpanse of local advertising, where cable system 14 may insert their ownadvertising, are also preferably sent multiple times, because missing anadvertising insertion point could adversely impact advertising revenue.Messages may be sent minutes before the boundary as well.

Another important segmentation message that may be repeated are theunscheduled content start message 128 and the unscheduled content endmessage 134. Since the unscheduled content may extend beyond thescheduled end time of program 102, it is important for the cable companyto know this as soon as possible. The exact end time of the unscheduledcontent may not be known but the end message can indicate an expectedtime to end of content in the message. The value of the expected time toend of content may become more accurate as the unscheduled contentprogresses towards its conclusion, and the segmentation messages mayreflect this developing accuracy.

For further redundancy, the messages may be sent periodically throughouta program or program portion. For example, a segmentation message toindicate an event may be sent every minute starting from the start of aprior event. As an event is approached, the time period between messagesmay become shorter. For example, messages may be sent every minute untilthe boundary is 1 minute away. Then the messages may be sent every 10seconds or more frequently. Segmentation messages may also be providedwithin one or more prior portions to indicate an event in a subsequentportion. For example, in program stream 100, national advertising startmessages 120 may appear one or more times within chapter 108 or evenbefore the start of chapter 108 in the program stream.

If two segmentation messages received at different times indicatedifferent event times, the time of the segmentation message arrivinglast is considered to be more accurate. It may, for example, reflect anunanticipated change in the end time of a program, such as overtime orpostponement of a commercial in a sports event.

Other segmentation messages that may be provided include a table of allof the segmentation points in a program. Tables of particular types ofsegmentation messages or all of the segmentation messages may also beembedded in program stream 100. For example, a table of each type ofadvertising (national and local, for example) in a program may beprovided. Additional information may be provided in the segmentationmessage to identify a commercial sponsor of respective advertising toassist cable system 14 in inserting appropriate advertising. Forexample, if the segmentation message includes an indication that anational ad that must be broadcast is for a soda company (Coca Cola, forexample), then a cable system 14 can more readily avoid placement of anadvertisement for a second soda company (Pepsi, for example), in a localad spot in proximity to the ad for the first soda company, which may bea contractual obligation of cable system 14. Receipt of such informationin a table at the beginning of a program or prior to the beginning ofthe program allows cable system 14 time to plan for ad placement in theprogram. Providing all segmentation messages in a table in programstream 100 at the beginning of a program or prior to the beginning ofthe program would give cable system 100 more time to plan for otherevents, as well.

Another segmentation message that may be provided is a message toindicate that a scheduled program is being replaced by source 12, or maybe replaced by cable system 14, by substitute programming. For example,if a sporting event is cancelled due to rain, source 12 may providesubstitute programming and the cable company may have the option ofproviding its own substitute programming. A segmentation message may beprovided as part of program start message 114 or prior to it, toindicate that substitute programming follows, and to identify theprogramming.

FIG. 3 is a block diagram of an example of an origination system 20 of asource 12 for uplinking video program transport signal streams withsegmentation messages, in accordance with an embodiment of theinvention. Origination system 13 comprises automation system 52, whichcontrols operation of system 13. Segmentation points of a program streammay be identified by an operator through automation system 52. Videosources 54, such as Video Source 1, Video Source 2 and Video Source 3,are coupled to automation system 52 through data bus 57. Video sources54 provide program signal streams to be segmented, to automation system52. Clock source 56 is also coupled to data bus 57, to provide timingfor system 13. Encoder 58 is a real time encoder coupled to videosources 54 to receive and encode the analog video streams into an MPEG-2single program transport stream, for example. Network controller 60 is acontrol and management interface to encoder 58 and an interface toautomation system 52 for insertion of segmentation messages. Transmitter62, such as a satellite dish, is coupled to encoder 60. Transmitter 62acts as an interface to transmit the program signal transport stream. AnMPEG multiplexor (not shown) capable of extracting the program clockreference from the program stream may be used instead of or in additionto encoder 58.

FIG. 4 is an example of a method 64 of preparing a program stream fordelivery in accordance with one embodiment of the invention. Eventboundaries are identified in Step 66. For example, automation system 52includes a display and a keyboard (not shown) through which an operatormay view a program and identify the start and end of program 102 and thestart and end of program portions of interest, by demarcations. Thepositions of the demarcations are defined with respect to clock 56.Segmentation of a pre-recorded program may take place during postproduction processing of the program. Segmentation of live events, suchas sports events, may take place during real-time editing immediatelyprior to broadcast. For example, an editor or director may determinewhether to skip a scheduled commercial break and hence insertion or notof a segmentation message for a commercial break, based on the status ofthe event. The director/editor may also correctly position unscheduledcontent start message 134 and program end message 136 when it isdetermined when overtime will end.

It will be appreciated that automated techniques may be used instead ofa manual technique for monitoring actual start and end times of aprogram. For example, one such automatic technique may involve automaticprocessing of the broadcast signal to detect fade-to-black framestypically associated with the beginning and end of a program andregistering the time of such detections.

Content segmentation messages are then inserted, in Step 67. Forexample, automation system 52 translates the demarcations defined by theoperator into segmentation message insertion commands, which may be sentto network controller 60 via an IP connection. Network controller 60sends the segmentation message insertion commands, which includes thesegmentation message to be inserted and the insertion time, to encoder58. Encoder 58 formats the command into an MPEG-2 transport packet, forexample, and inserts the packet, which is now the segmentation message,into the single program transport stream at the specified clock time.

Appropriate rights segmentation messages are also inserted into theprogram stream, in Step 68. The operator of automation system 52 maydefine the rights to be associated with a program or program portionbased on externally provided information. Automation system 52translates the rights information into segmentation message insertioncommands, which may also be sent to encoder 58 via network controller60. Encoder 58 formats the command into an MPEG-2 transport packet, forexample, creating the segmentation message. Encoder 58 inserts thesegmentation message into the program signal transport stream, as well.

The segmentation messages are preferably encrypted in Step 67 a.Encryption interferes with the ability of unauthorized parties tointercept and act upon segmentation messages for unintended purposes.For example, interception of segmentation messages could enableunauthorized parties to identify certain types of program portions, suchas commercials, for the purpose of skipping those portions. Encoder 58or a separate processor may provide encryption. It is noted that theentire program stream may be encrypted to prevent unauthorizedinterception of programming, as well.

Any encryption technique may be used. For example, a fixed keyencryption may be used, where the key used by encoder 58 (or an MPEGmultiplexor) is provided to cable system 14 by source 12 separately fromprogram stream 100. Cable system 14 may then decrypt the segmentationmessages, or the entire program stream 100, as necessary. Encryptiontechniques are discussed in more detail in the DVS 253 Standard, whichis discussed above and is incorporated by reference, herein, forexample.

Keys for decryption may be provided by sources 12 to cable system 14 intables sent via an out of band message to cable system 14. An index tothe table may also be sent, by source 12 to cable system 14 via anotherout of band message, to indicate which key is to be used to decodeprogram streams and/or segmentation messages in program streams from aparticular source 12.

Additional security may be provided through a Public/Private KeyExchange. Such a system is used in cable conditional access systems, forexample. A Data Encryption Standard (DES) or the Rivest, Shamir andAdleman (RSA) algorithm may also be used, for example. The longer thekey lengths, the more secure the encryption.

As mentioned above, segmentation messages for program 102 may beprovided in a table in program stream 100, instead of or in addition toproviding the messages in program stream 100 proximate relatedboundaries. Such a table or other such collection of segmentationmessages may also be provided out of the band of program stream 100. Itmay be carried in a separate program stream, for example. Thesegmentation messages may thereby be secured separately from program102. When provided out of band, the segmentation messages may be readilyremoved by the cable system so that they are not broadcast tounauthorized parties or devices. Embedded segmentation messages may alsobe removed from the program signal stream 100 prior to broadcast, asdiscussed below. Rights segmentation messages may also be providedoutside of program signal stream 100, via another communication path orchannel, such as in a separate program signal stream. They may also besent with a PIC listing for program 102. For example, rights informationmay be delivered via a virtual private network (“VPN”). The messages mayhave the same PIC as program 102, enabling the proper rights informationto be correlated with the proper program 102.

The use of segmentation messages enables a higher level of control overprogram content by the source 12 of the program. For example, if source12 wants interstitial material, such as a parental advisory message, tobe included in all presentations of a program, the program startsegmentation message 114 inserted by origination system 20 may indicatea start location prior to the advisory. The advisory will then be storedwith the program and will be retrieved whenever the program isretrieved. Other types of interstitial material that source 12 may wantto be included in all stored programs include previews, certainadvertising or promotions, related programming such as a documentaryabout the making of the main program and the trademark of the source 12,for example. Interstitial material may be placed before or after theprogram, as appropriate. Interstitial messages after a program may beincluded with the program when it is stored as an asset, through use ofprogram end segmentation message 136.

FIG. 5 a shows certain components of an example of headend 22 of cablesystem 14. Headend 22 includes an acquisition and staging (“A/S”)processor 70, schedule manager 72 and asset manager 74. Asset manager 74includes memory 76. Schedule manager includes memory 77. Headend 22receives programming from sources 12 via receiver 78, which couples thereceived program signal streams to A/S processor 70. Receiver 78 maycomprise one or more satellite dishes, for example. A/S processor 70 maycomprise an acquisition processor, such as a digital integrated receivetranscoder (“IRT”) 70 a and a staging processor 70 b as shown in FIG. 5b. A/S processor 70 receives and processes program streams, such asprogram stream 100, for broadcast to service area nodes 16-1 through16-m via hub 24 and HFC cable network 28. IRT 70 a receives the digitalprogram stream, decodes the stream and outputs an MPEG-2 signal streamto staging processor 70 b. Staging processor 70 b may re-encode a VBRprogram stream to a CBR stream, if necessary, as discussed above. Thebroadcast of program signal streams and headend 22 are described in moredetail in the '626 patent, identified above and incorporated byreference herein.

In this example, A/S processor 70 is also a program splicer. Stagingprocessor 70 b segments program stream 100 based on the segmentationmessages in the stream and externally provided program scheduleinformation, under the control of schedule manager 72. Program scheduleinformation may be provided to schedule manager 72 by an electronicprogram guide (“EPG”) server 79 in the form of a program guide datastream that includes a program identification code (PIC) and theapproximate program start and end times for each program. The programguide data stream is typically provided by a third party that aggregatesprogram scheduling information from a plurality of sources 12. Theprogram guide data stream may be stored by cable system 14 in schedulemanager memory 77 or other such memory as program guide data. Theprogram start and program end segmentation messages 114, 136 in theprogram signal transport stream 102 provide more precise program startand end times than those provided in the stored program guide data. Theprogram guide data stream does not provide any information about programportions, such as chapters.

Asset manager 74, including memory 76, is coupled to A/S processor 70,to receive the expanses of segmented programs and program portions,format the segmented programs and program portions (if necessary) tocreate respective assets, and store the assets. Memory 76 and memory 77may be a disk cache, for example, having a memory capacity on the orderof terabytes. Asset manager 74 formats the expanses into assets byassociating a program identification code (PIC) with each expanse,facilitating location and retrieval of the asset from memory 76. Rightsinformation is preferably associated with each asset as well. The PICand rights information may be derived from or may actually be thesegmentation message in program stream 100. Program portion assets, suchas chapter and advertising portions, may also be formatted by beingassociated with the PIC of the program and another code or codesuniquely identifying the portion and the location of the portion in theprogram. Such codes may be formatted by A/S processor 70, as well.

It is noted that in addition to the raw content, program specificinformation (“PSI”) is also a part of an asset that describescharacteristics of the asset. For example, PSI may describe attributesthat are inherent in the content of the asset, such as the format,duration, size, or encoding method. Values for asset PSI are alsodetermined at the time the 10 asset is created by asset manager 74 orA/S processor 70.

Memory 76, or other such memory, may also store current TV programsbeing currently broadcast, to enable PVR functions, such as rewind,pause and fast forward, as described in the '626 patent, identifiedabove and incorporated by reference, herein. Source 12 may grant rightsrelated to PVR functions for originally broadcast programs, that mayalso be defined in rights-related segmentation messages. For example,there may be rights granted relating to rewinding, fast forwarding andpausing. Rights to such functions may also be granted with respect tolater transmitted programs.

The embedding of rights-related information in or near program 102 inprogram stream 100, facilitates incorporation of the information in astored asset. Rights management of that program is also facilitated. Forexample, when TV program 102 is received by cable system 14, the rightsmessage associated with the program may be directly checked to determineif the cable system has rights to copy and store the program. If not, TVprogram 102 is broadcast by the cable company to customers withoutstoring the program. In addition, the memory 76 may be searched andrights related segmentation messages checked to identify programs andprogram portions with expired rights. Those programs and programportions may be deleted when such messages are found. When rightsinformation is stored or filed separately from the program or programportion, it may be more complicated to identify, locate and deleteexpired assets. When assets are retrieved from memory 76 fortransmission, rights information associated with the asset may bechecked again, to ensure that cable system 14 has the right to transmitthe asset at that time, as discussed further below.

FIG. 6 is a flowchart describing a method of operation 200 of headend 22in processing a program signal stream for storage, in accordance with anembodiment of the invention. A program signal transport stream includingsegmentation messages is scanned, in Step 202. In this example, A/Sprocessor 70 scans program signal transport stream 100.

Encoded information is derived from the scanned program signal stream,in Step 204. For example, A/S processor 70 scans the program stream forcontent and rights segmentation messages as the stream is being scanned.Upon locating a segmentation message, such as program start segmentationmessage 114, A/S processor 70 retrieves and sends the message toschedule manager 72. If the segmentation message is encrypted, A/Sprocessor 70 decrypts the message prior to sending it to schedulemanager 72. Schedule manager 72 processes the segmentation message toderive the encoded information. An actual start time of program 102 maybe determined by A/S processor 70 or schedule manager 72 based on thetime to start indicated by the segmentation message 114 and a systemclock in headend 22 (not shown). Rights segmentation message 115 isidentified, retrieved and provided to schedule manager 72, as well.

It is then determined whether there is a right to store the program, inStep 206. For example, schedule manager 72 evaluates the informationderived from rights segmentation message 115 to determine if the cablesystem 14 has the right to store the program. If Yes, additional encodedinformation is derived from the program stream as it is being scanned,in Step 210. For example, program end segmentation message 136 issimilarly identified and retrieved by A/S processor 70 and provided toschedule manager 72 to derive the encoded information. Program start andend segmentation messages indicating boundaries of program portions,such as advertising and chapters, may be derived, as well.

The program is segmented and stored based on the segmentation messages,in Step 212. In this example, schedule manager 72 instructs A/Sprocessor 70 to process program 102 for storage, based, at least inpart, on the segmentation messages. For example, A/S processor 70 isinstructed to segment program 102 from program stream 100 at the starttime indicated by segmentation message 114 and the end time indicated byprogram end segmentation message 136. A/S processor 70 determines the“best” splice point for defining the start and end of program 102, andprogram portions, and divides the content at an MPEG-2 I-frame orP-frame, for example, proximate that point. The MPEG-2 I-frame orP-frame may not be at the exact time indicated by the segmentationmessage. Audio content associated with the program is divided at a timeclose to the video presentation time of the video segmentation point.The expanse of program 102, from its segmented start point 107 a to itssegmented end point 107 b, is then stored as a discrete asset in memory76 in asset manager 74.

Segmentation may take place in real-time as program stream 100 is beingcaptured by A/S processor 70. For example, A/S processor 70 may providea segmentation message to schedule manager 72 upon receipt. Schedulemanager 72 may immediately determine that there is a right to storeprogram 102 for retrieval, and instruct A/S processor 70 to segmentprogram stream 100 at the location in the program signal streamindicated by segmentation message 114. If there is a lead time of atleast several seconds, for example, A/S processor 70 may be instructedto segment the program signal stream at the location identified by thesegmentation message, prior to receipt of that portion of program signalstream 100. Segmentation may therefore take place as soon as thatlocation in program signal stream 100 is received.

Expanses of chapter 108, national advertising 110, and local advertising112 of program 102 may be segmented and stored as discrete assets inaccordance with the method 100, as well. For example, A/S processor 70may identify and retrieve start and end segmentation messages for any orall of these program portions in Step 210, and provide them to schedulemanager 72, as program stream 100 is being scanned. If there areseparate rights messages associated with any of these program portions,they may be identified, retrieved and forwarded to schedule manager 72,as well. Schedule manager 72 interprets the segmentation messages and,if authorized by corresponding rights information, instructs A/Sprocessor 70 to segment those portions from program stream 100, as well.After program 102 has been segmented and stored, program 102 isavailable for retrieval, in Step 214.

In optional steps of method 200, the actual segmentation time for thestart and end of program 102 may be sent to schedule manager 72, toupdate the PSI for the current program 102. The actual program start andend times may then be compared to program start and end times for thesame program in the program guide data stored in memory 77, for example,based on the program identification code (PIC), in Step 216, and thestart and end times of the current program and subsequent programs inthe program guide data stored in memory 77, for example, is updated, ifnecessary, in Step 218. Schedule manager 72 may conduct such acomparison, for example. If there is a discrepancy in either the startor end times greater than a predetermined tolerance, then schedulemanager 72 may update the respective time for program 102 in the programguide data stored in memory 77, for example, in Step 216. The tolerancemay be fractions of a second up to a few minutes, depending on theimportance of the program content surrounding the program streamboundary. For example, the program content at the end of a sportingevent is very important, as is the program content at the beginning of anews program. In those cases, the tolerance should be small (fractionsof a second). If it is determined in Step 206 that there is no right tostore the program, Step 212 is skipped and Step 216 may be implemented.

A/S processor 70 may cause or allow the rights segmentation messages,such as messages 115 and 109, to be incorporated within or inassociation with an asset. For example, the rights segmentation messages115, 109 for the entire program 102 and for chapter 108, respectively,may be included within the expanse of the corresponding asset whenstored. If the rights-related segmentation message is outside of theexpanse of a respective program portion in program 102, such as ifrights-related segmentation message 115 is incorporated in program startsegmentation message 114 and the chapter rights segmentation message 109is incorporated in chapter start segmentation message 116, code may beinserted in or associated with the created asset by asset manager 74 orA/S processor 70.

If the asset is a TV program, such as TV program 102, the expanse of theprogram, between the boundaries indicated by program start segmentationmessage 114 and program end segmentation message 136, may be stored as asingle asset which may be readily retrieved in its entirety andtransmitted to a customer on request. FIG. 7 is an example of a portionof memory 76, where program 102 is stored as a single asset 220 in amemory location 11000. Asset 200 includes a PIC field 222 and a rightsfield 224, preferably at the head of the asset. As discussed above,these fields 222, 224 may be the original segmentation messages, part ofthe original segmentation messages, or be derived from the originalsegmentation messages in program stream 100 by asset manager 74 or A/Sprocessor 70.

Program 102 may be segmented and stored in other ways instead of or inaddition to being stored as a single asset 220. For example, program 102may be segmented into assets 226, 228, 230, 232, 234, 236 and 238corresponding to the following program portions: 1) start 107 a ofprogram 102 to start 108 a of chapter 108, 2) chapter 108, 3) end of 108b of chapter 108 to start 110 a of national advertising 110, 4) end 110b of national advertising to start 112 a of local advertising, 5) localadvertising 112, 6) end of local advertising to start 132 a ofunscheduled content, and 7) start 132 a of unscheduled content to end107 b of program 102, respectively. These assets are shown stored inmemory locations 110001, 110010, 110011, 110100, 110101, 110110 and110111, respectively, in FIG. 7. In this example, each asset 236-238 hasa PIC field 222. Each asset also has an asset code field 240 to uniquelyidentify the asset. Assets 226, 230, 234 and 238, corresponding tochapter 108, national advertising 110, local advertising 110 andunscheduled content 132, also have a rights field 242. Rights field 242may be a rights segmentation message from program stream 102 or may bebased upon the information in the rights segmentation message. Storageof a variety of assets with different compositions may provide furtherflexibility in program retrieval and reconstruction and enable cablesystem 14 to offer a wider range of choices to a customer.

For example, if cable system 14 has the right to offer program 102without commercials and presents such an option, when requested, program102 may be assembled from assets 226, 228, 232, 236 and 238 fortransmission. If cable network 14 has the right to replace either orboth of national or local advertising in program 102 by otheradvertising, asset manager 74 may do that, as well. For example, if bothnational and local advertising may be replaced, media processor 84 mayretrieve assets 226, 228, 232, 236 and 238, and insert replacementadvertising for assets 230 and 234 during assembly of program 102 fortransmission. Replacement advertising may be stored in and retrievedfrom asset memory 76, as well.

In addition, cable system 14 may have the right to transmit, and offerthe option of receiving, only a chapter of a program, such as chapter108. Asset manager 74 would then only retrieve asset 228. Chapter 108may also have different associated rights than the remainder of program102. For example, the rights to transmit chapter 108 on request mayexpire prior to the transmit rights related to the remainder of program102. If program 102 is requested and asset manager 72 determines thatthe right to transmit chapter 108 has expired, then asset manager 72 mayassemble program 102 without chapter 108. Asset manager 72 may cause anotification of the deletion of chapter 108, to be transmitted withprogram 102.

Commercial defeat devices may interpret the mere presence of a messagein a program stream as an indication of an upcoming advertisement. It istherefore preferred that segmentation messages be removed from theprogram stream prior to broadcast of the program stream to customers.A/S processor 70 may remove content related segmentation messages fromthe program stream during processing of program 102 for broadcast. It isalso similarly preferred that programs be stored for later transmissionwithout segmentation messages. As discussed above, rights-relatedsegmentation messages may be retained in the stored assets. If rightsinformation is combined with content segmentation messages, the rightsinformation may be removed and stored. The use of multiple segmentationmessages or decoy messages in the program stream may also render the useof commercial defeat devices impractical. An example of a decoy messageis splice_null message in DVS 253 format.

As mentioned above, rights-related messages and information may also bedirectly checked for expiration dates and other restrictions when arequested program is retrieved from memory. If rights to the program orprogram portion of the requested program have expired, then the expiredprogram or the expired portion thereof is not delivered. The requestermay then be informed that the requested program or a segment of theprogram may no longer be viewed. Use of rights-related segmentationmessage also facilitates verification that rights have been correctlynoted.

FIG. 8 is an example of a method 300 of retrieving stored assets fortransmittal on request, in accordance with another embodiment. A requestfor programming is received, in Step 302. Asset manager 74 of cablesystem 194 may receive requests from users made through their respectiveset-top terminals 18-1 through 18-n, via HFC cable network 28 and hub24, for example. The request may include the PIC or other identificationof a desired program or program portion.

The asset or assets comprising the requested programming is retrieved,in Step 304. Asset manager 74 may retrieve the asset or assets, based onthe PIC or other such identification, from memory 76.

It is then determined whether cable network 14 has a current right totransmit the asset or assets, in Step 306. Asset manager 74 may checkrights field 224 or 242 in a retrieved asset. If the rights fieldindicates that the right to transmit the requested asset has expired,the user may be notified, in Step 308.

If the rights segmentation message indicates that there is a right totransmit the asset or assets making up the requested programming, theasset or assets are processed, if necessary, in Step 310. Processing mayinvolve assembling the requested programming from components of theprogramming, deleting or replacing commercials, etc. The requestedprogramming is then transmitted to the user, in Step 312.

Cable system 14 may have local advertising inserted by set-top terminals18-1 through 18-n in FIG. 1, in accordance with another embodiment ofthe invention. U.S. Pat. No. 7,716,700 B2, filed on Nov. 25, 2002,assigned to the assignee of the present invention and incorporated byreference herein, discloses an example of a system where set-topterminals may insert substitute commercials corresponding to originalcommercials as a user fast forwards through the original commercials.The substitute commercial is configured to be appreciated at the fasterspeed.

FIG. 9 is an example of a terminal 270, which is representative of theset-top terminals 18-1 through 18-n of FIG. 1. Terminal 270 is typicallycoupled to a display device, such as a TV, at a user location. Terminal270 includes interface 272, processor 274 and memory 276. A programsignal stream broadcast by headend 22 is received by interface 272.Memory 276 may store local advertising. Memory 276 may be a hard driveof terminal 270, for example. The location of the insertion point by theterminal 270 may be indicated by segmentation messages, such as localadvertising start segmentation message 124, which may be identified byprocessor 274. The location of the return point may be indicated bylocal advertising end segmentation message 126. While it is preferredthat headend 22 remove segmentation messages from the program signalstream prior to broadcasting the signal stream to set-top terminal 270,as discussed above, if terminal 270 is to insert local advertising, itis necessary to maintain at least local advertising start segmentationmessage 124 and local advertising end segmentation message 126 in thebroadcast program signal stream. Preferably, the segmentation messagesare encrypted and decoy messages are sent by headend 22, as well. Thesegmentation message for local advertisement insertion may be encryptedprior to broadcast by A/S processor 70, which may also insert the decoymessages into the program stream. The messages may be decrypted byprocessor 274. After decryption processor 274 determines that the decoymessages contain redundant or irrelevant information and may bedisregarded. For example, processor 274 may be programmed to recognizethat a splice-null message in DVS 253 format is a decoy message to bedisregarded. Alternatively, terminal 270 may be informed by cable system14 where the real segmentation messages are located. The program signalstream is provided to a associated display, such as a TV, including theinserted advertising.

FIG. 10 a is an example of a method 350 of operating cable system 14,where local advertising may be inserted by terminal 270. A programsignal stream is broadcast by headend 22 to interface 272 of terminal270, in Step 352, for example.

An advertising insertion point is identified, in Step 354. For example,processor 274 scans the program signal stream for a local advertisingstart message 124 as the program signal stream is received. If theprogram signal stream is broadcast by headend 22 with encryptedsegmentation messages and/or decoy messages, processor 274 decryptsencrypted messages and disregards the decoys.

Advertising is inserted into the program signal stream starting at ornear to the insertion point, in Step 356. Processor 274 may request astored advertisement from memory 276 and insert the advertisement,starting at or near to local advertising start message 124, for example.

An end of the local advertising portion of the program signal stream isidentified in Step 358. Processor 274 may continue to scan the programsignal stream as it is received, to identify the local advertising endsegmentation message 126, for example. The advertising is ended and theoriginal program signal stream is provided to a TV, or other suchdisplay device, coupled to terminal 270, in Step 360.

Set-top terminal 270 may also include personal video recorder (“PVR”)278, which may be part of processor 274 as shown in FIG. 9 or may becoupled to processor 272. Users may program PVR 278 to recordprogramming at designated times, based on an EPG or other such programlisting, for example. The recorded programming may be stored in memory276 or other such memory. In accordance with another embodiment of theinvention, processor 274 may adjust start and end times for recordingselected programs based on segmentation messages, as well. Processor 274may compare program start segmentation message 114 and program endsegmentation message 136 to the start and end times for a particularprogram according to the EPG and adjust the respective times indicatedby the EPG, to ensure accurate recording, if necessary. Processor 274may thereby compensate for differences between the actual broadcasttimes for a program and the scheduled times in the EPG, due to overtimein sporting events, news bulletins, etc. The segmentation messages maybe in the program stream or may be provided separately, as describedabove. The segmentation messages may be encrypted by headend 22 of cablesystem 14 or by a source 12, as described above.

FIG. 10 b is an example of a method 280 of operating set-top terminal270 in accordance with an aspect of this embodiment of the invention. Aprogram stream, such as program stream 100, is received by set-topterminal 270 from headend 22, for example, in Step 282. In this example,the program stream includes segmentation messages. The receipt ofprogram streams by set-top terminals is discussed in more detail in the'626 patent, which is incorporated by reference herein.

An encoded program start segmentation message is derived from theprogram stream in Step 284 by processor 274, for example. The time tothe start of a program is determined from the program start segmentationmessage and compared to the set recording start time based on the EPG,in Step 286 by processor 274, for example. If there is a difference, orif the difference is greater than a threshold, for example, therecording start time is adjusted, in Step 288. Recording is started byPVR 278 at the appropriate time, in Step 290.

As the program is received, the encoded program end time is derived, inStep 292. The time to the end of the program is determined from theprogram end time and compared to the end time for the program in theEPG, by processor 274, in Step 294. For example, if the difference isgreater than a threshold, the time is adjusted, in Step 296. Recordingends at the end of the appropriate time, in Step 298.

While described in terms of a set-top terminal including a PVR, theinvention may be implemented by a video cassette recorder (“VCR”)including a processor, or other PVRs or digital video recorders, aswell.

As discussed above, headend 22 may remove segmentation messages from theprogram stream prior to broadcasting the program signal stream. If cablesystem 14 enables adjustment of recording times by set-top terminals,then headend 22 may allow the necessary segmentation messages to bebroadcast with the program stream, as well. Alternatively thesegmentation messages may be provided to set-top terminals separate fromthe program signal stream, as discussed above.

Processor 272 may also use other segmentation messages, such asunscheduled content start message 128 and unscheduled content endmessage 134, to assist in more accurately identifying program boundariesfor recording. If chapter information is provided in the EPG forseparate recording, for example, chapter start segmentation message 116and chapter end segmentation message 118 may be used, as well. Inaddition, segmentation messages may be used without EPG data to defineprogram and program portion boundaries for recording. For example, userinput start and end times of a program may be adjusted based, at leastin part, on segmentation messages.

Segmentation messages may be associated with analog transmissions, suchas satellite transmissions of network stations and digital transmissionsdecoded via an integrated receiver decoder (“IRD”), as well. FIG. 11 ais an example of origination system 400 that may provide an analogprogram stream with embedded segmentation messages.

Origination system 400 comprises automation system 402 coupled to uplinksystem 404, via origination proxy 406. As discussed above with respectto FIG. 3, automation system 402 controls operation of system 400 andenables operators to identify locations of segmentation messages in aprogram or program stream. Origination proxy 406 interfaces withautomation system 402 to receive information on when segmentationmessages should be inserted. Origination proxy 406 also interfaces withdownstream insertion equipment to have the proper messages inserted atthe proper locations. Automation system 402 is thereby insulated fromchanges in the equipment and techniques for inserting segmentationmessages Origination proxy 406 may comprise a suitably programmedprocessor or server, for example. Alternatively, the functions oforigination proxy 406 may be incorporated in automation system 402.Uplink system 404, which processes input program signal streams asnecessary 10 for transmission, is coupled to transmitter 408, which actsas an interface to transmit analog signals to satellite 410. Forexample, uplink system 404 may modulate the signal stream by quaternaryphase shift keying (QPSK) modulation, for example. Three examples ofsystems for incorporating segmentation messages are shown in FIG. 11 a,along Path 1, Path 2 and Path 3, respectively. Each Path 1-3 differs inthe way origination proxy 406 is coupled to uplink system 404. Othersystems may be used, as well.

Path 1 may be used where uplink system 404 includes an asynchronous dataport 410 with an RS232 input. Origination proxy 406 may be coupleddirectly to asynchronous data port 410. A low data rate bit stream ispreferably used to provide richer messages. Certain satellite systems,such as the Motorola Video Cipher, available from Motorola Inc., SanDiego, Calif., for example, have such an asynchronous port. Originationproxy 402 instructs uplink system 404 to insert segmentation messages atparticular locations via an application programming interface. Thesegmentation messages may be inserted in the well-known asynchronous RS232 serial format.

In Path 2 and Path 3, segmentation information may be inserted into theanalog video vertical blanking interval (“VB1”), for example, which is aportion of the video signal that is outside of the displayable region.An encoding format such as Extended Data Services (“XDS”) E1A-608B Line21 Data Service, Sep. 21, 1999, may be used to carry segmentationmessages in an ancillary portion of the video signal. For example, line21, fields 1 and 2, typically carry closed caption information, inaccordance with regulations. Segmentation messages in XDS format may bereadily supported in line 21 by both satellite and over-the-airbroadcast equipment. Segmentation messages may be in the form of a syncbyte, as discussed above with respect to DVS 253 messages, for example.The segmentation messages described above with respect to digitalsystems, and other segmentation messages as desired, may be insertedinto the VBI in XDS format. Closed caption information and segmentationmessages may be inserted simultaneously or sequentially. It is alsonoted that XDS format may be used in any non-compressed analog ordigital program stream. Other suitable formats may be used, as well.

If XDS format is used, in Path 2 in this example, origination proxy 406is coupled to Extended Data Service/Closed Caption (“XDS/CC”) encoders412-1, 412-2 through 412-n via a serial interface, for example. MPEG-2Digital Compression System 413, which comprises respective MPEG-2encoders 414-1, 414-2 . . . 414-n and MPEG-2 multiplexor 416, is coupledto XDS/CC encoders 412-1 through 412-n. MPEG-2 Digital CompressionSystem 413 is coupled to uplink system 404. MPEG-2 compression isprovided to decrease the number of bits of the program stream,decreasing the number of bits that need to be transmitted.

Baseband audio/video of individual programs are provided alongrespective channels 1, 2 . . . n to XDS/CC encoders 412-1 through 412-n,respectively, which insert segmentation messages and closed captioninformation in XDS format into the VBI. The MPEG-2 encoders 414-1through 414-n digitally encode and compress the digital programs alongeach channel. MPEG-2 multiplexer 416 multiplexes the programs into asingle multi-program transport stream in MPEG-2 format, which isprovided to uplink system 404.

If XDS format is used, in Path 3 of this example, XDS/CC encoder 418 iscoupled to origination proxy 406 and uplink system 404. XDS/CC encoders418 inserts segmentation messages in XDS format and closed captioninformation into a baseband audio/video program stream under the controlof origination proxy 406. The program stream is conveyed to uplinksystem 404 and transmitted to satellite 408 in analog format, withoutcompression and MPEG-2 conversion. The particular segmentation messagesdescribed above with respect to digital systems, and other segmentationmessages as desired, may be inserted in VBI in XDS format. In Path 3,the program stream is not MPEG-2 compressed, to allow for analogreception in a headend of cable system.

Dual-tone multi-frequency (“DTMF”) signaling, which has been used toindicate insertion points for advertising in analog program streams, mayalso be used to encode segmentation messages, along Path 1. The DTMFsignals may be inserted into the program stream by uplink system 404, asdirected by automation system 402.

When DTMF signals are used, only the most significant segmentationmessages are defined. For example, a DTMF signal may be assigned toidentify the beginning of a program segment. Another DTMF signal may beassigned to indicate that a program segment is about to terminate. Toenhance the resiliency of the segmentation, each segmentation event issignaled twice, at 15 and 5 seconds prior to an event, for example. Thefirst and second segmentation messages (indicating an event in 15seconds and 5 seconds, respectively) to indicate program start andprogram end may be assigned different respective DTMF signals. If a5-second segmentation message arrives, its timing is used to determinethe segmentation position and the 15-second segmentation message isdisregarded. If no 5-second message is received, then the time indicatedby the 15-second message is used.

The DTMF codes preferably also uniquely identify a signal for eachservice within a transponder. For example, if CNN and CNNFn are withinthe same transponder, the program start and program end signals for CNNshould be different than the corresponding signals for CNNFn.

When a program not in the schedule is inserted into the content stream,signaling of unscheduled start and end of an unscheduled program is usedto prevent arriving content from being confused with scheduled content.Different DTMF signals may be assigned to unscheduled start andunscheduled end, for 15 seconds prior to the event and 5 seconds priorto the event, for example, respectively.

Due to the limited number of available signals, it is preferred todeliver rights information through an alternate channel. The informationmay be correlated to programs and program portion based on a schedule.A/S processor 70 or asset manager 74 may incorporate the rights messagesinto stored assets as the assets are created, as described above. Inaddition, programs are preferably not assigned unique identifiers. Tocompensate for the lack of unique identifiers, content segments may betreated as a sequence of odd and even pairs. In the typical case,signals for an even segment will be followed by signals for an oddsegment. If a program is cancelled because of a schedule change (forexample, a program extension causes the following program to becancelled), the cancellation of the program may be indicated bysuccessive signaling of 2 even or 2 odd segments. Alternatively, DTMFsignals may be used to indicate whether a scheduled program is beingdelivered within a predetermined window of its scheduled time. Thewindow may be plus or minus 5 minutes, for example. Different DTMFsignals may be used to identify the start and end of a program withinthe window (on-time). Different signals may also be used to identifyon-time start and end in 15 and 5 seconds, respectively, or otherappropriate time intervals. Other DTMF signals may be used to indicatethe start and end of an out-of-window (late) program, and the start andend of an unscheduled program for two time intervals (15 and 5 seconds).

Arrival of an on-time DTMF signal indicates that a scheduled program isto be broadcast. If a sporting event ends 30 minutes late, for example,a post game show may be canceled and the program scheduled to follow thepost game show may be delivered on-time, with on-time DTMF signals. Ifthe post-game show is to be broadcast, then out-of-window DTMF signalswould be included. This would indicate that a scheduled program is beingreplaced. Where program sequence is maintained, out-of-window signalsindicate that an associated program is delayed.

FIG. 11 b is an example of an origination system 420 that may be used bylocal broadcasters. Components common to system 400 of FIG. 11 a arecommonly numbered. Here, distribution amplifier 422 is coupled totransmitter 424 and to XDS/CC encoder 426. Origination proxy is coupledto XDS/CC encoder 426 via a serial interface. Automation system 402 iscoupled to origination proxy 406. An output of XDS/CC encoder 426 iscoupled to studio link 428. Both transmitter 424 and studio link 428 actas interfaces to transmit program streams from origination system 420.

A baseband audio/video program stream is provided to distributionamplifier 422, which splits the program stream into a first signalstream that is provided to transmitter 424 for transmission to anantenna (not shown). The satellite may broadcast the program streamdirectly to antennas of TV sets. No segmentation messages are inserted.

In this example, the second program stream is provided to XDS/CC encoder426, which inserts segmentation messages in the VBI in XDS format underthe control of origination proxy 406 and automation system 402. Theprogram stream is provided to studio link, which is coupled to cablesystem 14, along fiber optic interconnect, for example. The signalstream provided via studio link 428 which may be in digital or analogformat, may be of higher quality than that transmitted to antennas on TVsets.

FIG. 12 is an example of headend 500 of a cable system, such as cablesystem 14, configured to receive analog program streams. Satellitedishes 502-1 through 502-n are shown, each for receiving an analogprogram stream from a respective network along a respective channel 1through n. Each network typically transmits a respective program streamvia a respective satellite (not shown). In this example, the analogprogram stream received by satellite dish 502-1 is generated by Path 1in FIG. 11 a in RS 232 serial format while the program stream receivedby satellite dish 502-n is generated along Paths 2 or 3 in FIG. 11 a andinclude segmentation messages in the VBI in XDS format. A channel m isshown for receiving programming along a studio link, as shown in FIG. 11b. Another channel o is shown for receipt of programming including DTMFsegmentation messages.

Each dish 502-1 through 502-n is coupled to a respective analogsatellite receiver/IRD 504-1 through 504-n along the respective channel1 through n. MPEG-2 encoders 506-1 through 506-n receive an output ofeach respective IRD 504-1 through 504-n. Two outputs of IRD 504-1 areshown, output 1 for baseband audio and video, and output 2 for thesegmentation messages, in RS 232 serial format. One output is providedfrom IRD 504-n, along which program streams are received withsegmentation messages in the VB1 in XDS format, where the segmentationmessages are integrated with the respective program signal streams.

MPEG-encoders 506-1 through 506-n compress the program stream intorespective MPEG-2 streams. Segmentation messages in XDS format areextracted from the VBI and converted to DVS 253 messages, or anothersuch format, and are inserted into the MPEG-2 stream.

Channel m receives program streams via a studio link receiver 505. Theprogram stream is provided to MPEG-2 encoder 506-m, which alsocompresses the program stream into an MPEG-2 stream. As above, encoder506-m also extracts XDS segmentation messages, converts them to DVS 253messages and inserts the DVS 253 messages into the MPEG-2 programstream.

Each MPEG encoder 506-1 through 506-n and 506-m provide the MPEG-2stream to staging processor 70 a, which processes the stream inconjunction with a schedule manager 72, as described above with respectto FIGS. 5 a, 5 b and 6. Programs may thereby be stored as assets inasset manager 74, based, at least in part, on the segmentation messages.

Satellite dish 502-o, in channel o, receives program streams withsegmentation messages in DTMF format. Satellite dish 502-o is coupled toan integrated receive transcoder (“IRT”) 512. IRT 512 encodes the analogprogram stream into an MPEG-2 stream, which is provided to stagingprocessor 70 a along Output 1. A second output of IRT 512 is coupled toreceiver 514, which is coupled to segmentation detector 516.Segmentation detector 516 is coupled to staging processor 70 b via anapplication interface (API). The DTMF signals are removed from theprogram stream by IRT 512 and provided to receiver 514 along Output 2,coordinated in time with the program stream. Receiver 514 provides theDTMF signals to segmentation detector 516, which identifies thesegmentation messages and informs staging processor 70 a of the value ofthe DTMF message, in coordination with receipt of the program stream bythe staging processor. Segmentation detector 516 may also be part ofstaging processor 70 a.

Staging processor 70 a, in conjunction with schedule manager 72,interprets the segmentation messages to segment a program, as describedabove with respect to the operation of A/S processor 70 in FIG. 5 a.

The channels 1 through n, m and o provided in headend 500 are exemplary.A headend may include non or one or more channels of each type, asneeded. Other channels may also be provided for receiving compresseddigital program streams in MPEG-2 format, for example, in which case thechannel or channels may include the digital IRT 70 a discussed in FIG. 5b, above, coupled to the staging processor 70 b.

As discussed above, segmentation messages may be repeated throughout theexpanse of a program portion preceding the event to be indicated, toensure that A/S processor 70 identifies the message and has time torespond to the message. FIG. 13 is a schematic diagram of a programstream 600 marked with segmentation messages 602-610 in accordance 20with another embodiment of the invention. In this example, eachsegmentation message 602-610 indicates a Time from Start time period,indicating the time since an event, such as the start of a program,chapter or advertising, and a Time Until End, indicating the time untilan event, such as such as the end of the program, end of a chapter, orend of advertising. The message also preferably includes a programidentification code. The Time Until Start is an optional field.

Segmentation messages 602-610 may each be local advertising endsegmentation messages 126 (see FIG. 2 a), for example. As discussedabove, cable system 14 may insert advertising in place of advertisingprovided in program stream 100 by a source 12. The replacementadvertisement may be inserted by A/S processor 70 or terminal 270. Insegmentation message 602, Time Until End indicates that there are 26.60seconds until of the end of the advertising portion. Time From Startindicates that the local advertising started 3.40 seconds ago. The nextsegmentation message 604, which is inserted 2.3 seconds later in programstream 600, in this example, indicates a Time Until End of 24.30seconds. It also indicates a Time From Start of 5.7 seconds. Additionalprogram end segmentation messages are inserted every 2.3 seconds untilthe end of the advertising.

In this way, the end of the advertising portion is precisely defined bymultiple messages, so that if A/S processor 70 or set-top terminal 270miss a message, they may receive a subsequent message and still be ableto identify the end of the program portion. In addition, if terminal 270is a slow model, it may need additional time to respond to a message.Providing multiple messages may provide that additional lead time, ifnecessary.

Segmentation messages may be similarly provided to indicate the end ofother portions of the program 102, such as the end of a chapter, end ofnational advertising or end of the entire program, as well. Thetechnique of repeating messages may also be used to indicate the startof the program 102 and any of these program portions. Providing multiplesegmentation messages in the program portion prior to the start of localadvertising would be particularly useful, for example, to ensure that aninsertion point for the start of replacement local advertising is notmissed. Segmentation messages may be repeated in any portion of program102 to indicate the start or end of any subsequent portion. Segmentationmessages may also be included in a portion of a prior program toindicate the start of the next program or other program portions.

In accordance with this embodiment, segmentation messages may beinserted at regular intervals (every 2.3 seconds, for example) or atdifferent intervals based on proximity to the end of the programportion. For example, segmentation messages may be separated by greatertime periods at the beginning of a program portion and a smaller timeperiod or periods as the end of the program or program portion isapproached. If an original program stream 100 is received by headend 22with only one or a few segmentation messages, A/S processor 70 may addadditional messages for redundancy, if desired.

The Time Until End in each segmentation message may be changed if itbecomes apparent that a program portion or the program itself willexceed (or fall short of) the scheduled end time. For example, as soonas it is realized that a live event, such as a sports event, will exceedthe scheduled time to end, the time inserted in Time Until End field ofthe segmentation messages may be an anticipated end time of the event.When such a segmentation message is received by downstream devices, suchas A/S processor 70, it will be known that the current program willexceed the scheduled end time, and the device may act accordingly.Depending on the program that is exceeding the scheduled end time andthe subsequent program, the subsequent program may be canceled orpostponed, for example. A post game show of a sports event may becanceled to avoid canceling or postponing other programs, for example.Warning notices may be broadcast to customers informing them of theprogram going over the scheduled end time and how subsequent programmingwill be handled, so that customers will not be surprised. As theextended program progresses and the end time may be more accuratelyestimated, the Time Until End value may reflect that estimated end time.The messages will be more accurate the closer the segmentation messageis to the actual end time of the program.

In another example, multiple segmentation messages in accordance withthis embodiment may be used where set-top terminal 270 runs softwarethat provides a program-synchronous user interface, such as triggerbased advertising. The interface may be shown at specific points in theprogram and may require lead time for the set-top terminal to prepare toprocess the event. Using segmentation messages in accordance with thisembodiment, the client software may quickly determine when the nextevent will take place, even if a program is joined in progress. Thesoftware can also check earlier sent messages. If a message is missed, asubsequent message will provide the necessary information. As discussedabove, providing a plurality of messages is advantageous for slowermodels of set-top terminals to provide more lead time, as well.

Another circumstance where the use of repeating messages in accordancewith this embodiment of the invention would be useful is where equipmenthardware at the cable system needs to be taken off-line or crashes. Ifnew hardware is introduced to replace the original hardware, or theoriginal hardware comes back on-line, it can quickly determine when anevent will take place based on the next cue tone.

Lack of receipt of a periodically sent message by a receiver may alsoquickly indicate a problem in the system upstream of the receiver, aswell.

The systems disclosed herein are in a form in which various functionsare performed by discrete functional blocks. However, any one or more ofthese functions could equally well be embodied in an arrangement inwhich the functions of any one or more of those blocks or indeed, all ofthe functions thereof, are realized, for example, by one or moreappropriately programmed processors.

The foregoing merely illustrates the principles of the invention. Itwill thus be appreciated that those skilled in the art will be able todevise numerous other arrangements which embody the principles of theinvention and thus within the spirit and scope of the invention, whichis defined in the claims, below.

What is claimed is:
 1. A method of operating a receiving devicecomprising: programming the receiving device to record a selected one ofat least one program to be received in program signal stream, startingat a first program start clock time; receiving the program signal streamcomprising at least the selected program and at least one messagecontaining a second program start time for the selected program, thesecond program start time being in units of time with respect toprogression of the program signal stream, from receipt of the message toa start of the selected program in the program stream, the programsignal stream and the at least one message being received from a sameoriginator; identifying the at least one message in the received programstream; comparing the first program start clock time of the selectedprogram with the second program start time, in units of time, containedin the at least one message; and starting to record the selected programbased, at least in part, on the second program start time, if the secondprogram start time is different from the first program start clock time.2. The method of claim 1, comprising; programming the receiving deviceto record the selected program by selecting the program from a programlisting.
 3. The method of claim 2, wherein the program listing definesthe first program start clock time of the selected program, the methodfurther comprising; setting a recording start clock time for theselected program based on the first program start time defined by theprogram listing.
 4. The method of claim 3, further comprising; setting arecording end clock time for the selected program based on a firstprogram end clock time defined by the program listing; wherein the atleast one message contains a second program end time of the selectedprogram, the second program end time being in units of time with respectto progression of the program signal stream, from receipt of the messageto an end of the selected program in the program stream, the methodfurther comprising; comparing the second program end time, in units oftime, contained in the at least one message to the recording end time;adjusting the recording end time of the selected program to the secondprogram end time, if the recording end time is different than the secondprogram end time; and ending recording of the selected program at thesecond program end time, if the recording end time has been adjusted. 5.The method of claim 4, wherein the at least one message comprises asingle message defining the second program start time and the secondprogram end time, the method comprising: receiving the program signalstream including the single message.
 6. The method of claim 4, furthercomprising: after starting to record the selected program, receiving atleast one second message in the program signal stream, the at least onesecond message defining a second program end time by indicating anamount of time until the end of the program, in units of time withrespect to progression of the program signal stream, from receipt of themessage to an end of the selected program in the program stream; andending recording of the program at the second program end time, in unitsof time, contained in the at least one second message.
 7. The method ofclaim 6, further comprising: after starting to record the selectedprogram; receiving at least one second message defining a start time forunscheduled content of the selected program, wherein the unscheduledcontent follows the first program end clock time, the at least onesecond message being received prior to the scheduled end time, in theprogram signal stream; continuing to record the selected program afterthe scheduled end time; while recording the selected program, receivingat least one third message defining an end time for the unscheduledcontent of the selected program, the end time for the unscheduledcontent being after the first program end clock time of the selectedprogram, the at least one third message being received prior to the endtime of the unscheduled content, in the program signal stream; andending recording of the selected program at the end time of theunscheduled content defined by at least one of the at least one thirdmessage.
 8. The method of claim 7, wherein the selected program is asporting event and the unscheduled content comprises overtime of thesporting event.
 9. The method of claim 7, wherein the at least one thirdmessage comprises at least one fourth message defining at least onerespective expected end time of the unscheduled content and at least onefifth message defining an actual end time of the unscheduled content,the method comprising: receiving the at least one fourth message priorto receiving the at least one fifth message; and ending recording of theselected program at the actual end time defined by the at least onefifth message.
 10. The method of claim 1, wherein the originatorcomprises a program origination system.
 11. The method of claim 1,comprising receiving the program signal stream, including the at leastone message, via a cable television network.
 12. A receiving device toreceive a program signal stream comprising: an interface to receive aprogram signal stream comprising at least one program, the programsignal stream comprising at least one message containing a first programstart time for a selected one of the at least one programs, the firstprogram start time being in units of time with respect to progression ofthe program signal stream, from receipt of the message to a start timeof the selected program in the program stream, wherein the programsignal stream including the at least one message is received from a sameoriginator; a processing device configured to: be programmable by a userto record the selected program starting at a second program start clocktime; receive the program signal stream from the interface; identify theat least one message in the received program signal stream; compare thefirst program start time of the selected program in units of timecontained in the at least one message to the second program start clocktime; and start to record the selected program starting at the firststart time, in units of time contained in the at least one message, ifthe second start time is different from the first start clock time; thereceiving device further comprising memory coupled to the processor tostore the selected recorded program.
 13. The receiving device of claim12, wherein the processing device is programmable to record the selectedprogram by selecting the program from a program listing.
 14. Thereceiving device of claim 13, wherein the program listing defines thesecond program start time of the selected program and the processingdevice is programmed to: set a recording start time for the selectedprogram based on the second program start clock time defined by theprogram listing.
 15. The receiving device of claim 14, wherein theprocessor is programmed to: set a recording end time for the selectedprogram based on a second end clock time defined by the program listing;and the at least one message defines a second program end time of theselected program, the second program end time being in units of timewith respect to progression of the program signal stream, from receiptof the message to an end of the selected program in the program stream;the processing device being further programmed to: compare the recordingprogram end time of the selected program to the second program end timein units of time, contained in the at least one message; and adjust therecording end time of the selected program to the second program endtime if the second program end time is different than the recordingprogram end
 16. The receiving device of claim 15, wherein the at leastone message comprises a single message defining the first program starttime and the first program end time, the processing device beingprogrammed to: receive the program signal stream including the singlemessage.
 17. The receiving device claim 15, wherein: the program signalstream comprises at least one second message defining a start time forunscheduled content of the selected program and at least one thirdmessage defining an end time for the unscheduled content of the selectedprogram, the end time for the unscheduled content of the selectedprogram being after the scheduled end time of the selected program; andthe processing device is further programmed to; receive the at least onesecond message defining a start time for the unscheduled content of theselected program after starting to record the selected program; continueto record the selected program after the scheduled end time for theselected program; receive the at least one third message defining an endtime for the unscheduled content, while recording the selected program;and end recording of the program at the end time of the unscheduledcontent defined by the at least one third message.
 18. The receivingdevice of claim 17, wherein at least one of the at least one secondmessage and at least one of the at least one third message are a singlemessage.
 19. The receiving device of claim 17, wherein the unscheduledcontent starts at the scheduled end of the selected program.
 20. Thereceiving device of claim 12, wherein the processing device isconfigured to start to record the selected program based, at least inpart, on the second program start time contained in the at least onemessage, if a difference between the second program start time and thefirst program start time is greater than a threshold.